<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button onclick="a()">click</button>
    <script>
        function a () {
            console.log(this);
            var oAjax = new XMLHttpRequest();
            oAjax.open('get', 'http://localhost:3000/comment/music?id=186016&limit=1');
            oAjax.send();
            var _this = this; // 将外层this的值赋值给_this,保留this指向（修改this指向）
            // 保留this指向：保留外层的this指向，即使在内层，依然指向外层，不过随着作用域的变化而变化
            // 修改this指向，在内层指向外层（本应应该指向自己的，现在指向别人）
            oAjax.onreadystatechange = function() {
                if(oAjax.readyState == 4 ) {
                    if(oAjax.status == 200) {
                        // console.log(oAjax.responseText);
                        console.log(this);
                        console.log(_this);
                    }
                }
            }
        }
        console.log(a.constructor); // Function 是所有函数的构造函数
        console.dir(Function.prototype);
        var obj1 = {
            name: '大飞哥',
            age: 18,
            show: function() {
                console.log('王牌飞行员，申请出战！');
                console.log(this); // 对象中的函数里面的this 指向对象本身
            }
        }
        obj1.show()
    </script>
</body>
</html>